{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "7d0d179d",
   "metadata": {},
   "source": [
    "# THE CODE IS IN MY GITHUB!!!\n",
    "Go and checkout my github if you want the to_candle file!\n",
    "## https://github.com/kecoma1/Trading_BOT"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "dc133857",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import to_candle"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f1c665d2",
   "metadata": {},
   "source": [
    "## Candle dataframe\n",
    "This dataframe is obtained through the from_tick_to_candle function. The dataframe contains the following columns:\n",
    "* **TIME-UTC**: UTC-TIME since epoch in seconds.\n",
    "* **OPEN**: Open price of that candle.\n",
    "* **CLOSE**: Close price of the candle.\n",
    "* **HIGH**: Highest price of the candle.\n",
    "* **LOW**: Lowest price of the candle."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "794baf27",
   "metadata": {},
   "outputs": [
    {
     "ename": "FileNotFoundError",
     "evalue": "[Errno 2] No such file or directory: 'EURUSD.csv'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-5-84b177f5acaa>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mcandle_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mto_candle\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfrom_tick_to_candle\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"EURUSD.csv\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m15\u001b[0m\u001b[1;33m*\u001b[0m\u001b[1;36m60\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      2\u001b[0m \u001b[0mcandle_df\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m5\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Documents\\GitHub\\Trading_BOT\\ta\\RSI\\to_candle.py\u001b[0m in \u001b[0;36mfrom_tick_to_candle\u001b[1;34m(filename, timeframe)\u001b[0m\n\u001b[0;32m     32\u001b[0m             \u001b[0mTIME\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0mUTC\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mOPEN\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mCLOSE\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mHIGH\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mLOW\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     33\u001b[0m     \"\"\"\n\u001b[1;32m---> 34\u001b[1;33m     \u001b[0mtick_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msep\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'\\t'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     35\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     36\u001b[0m     \u001b[1;31m# Creating a new dataframe\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36mread_csv\u001b[1;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)\u001b[0m\n\u001b[0;32m    608\u001b[0m     \u001b[0mkwds\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkwds_defaults\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    609\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 610\u001b[1;33m     \u001b[1;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    611\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    612\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_read\u001b[1;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[0;32m    460\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    461\u001b[0m     \u001b[1;31m# Create the parser.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 462\u001b[1;33m     \u001b[0mparser\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTextFileReader\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    463\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    464\u001b[0m     \u001b[1;32mif\u001b[0m \u001b[0mchunksize\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0miterator\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[0;32m    817\u001b[0m             \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"has_index_names\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"has_index_names\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    818\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 819\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_make_engine\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    820\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    821\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_make_engine\u001b[1;34m(self, engine)\u001b[0m\n\u001b[0;32m   1048\u001b[0m             )\n\u001b[0;32m   1049\u001b[0m         \u001b[1;31m# error: Too many arguments for \"ParserBase\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1050\u001b[1;33m         \u001b[1;32mreturn\u001b[0m \u001b[0mmapping\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mengine\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m  \u001b[1;31m# type: ignore[call-arg]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1051\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1052\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0m_failover_to_python\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, src, **kwds)\u001b[0m\n\u001b[0;32m   1865\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1866\u001b[0m         \u001b[1;31m# open handles\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1867\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_open_handles\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1868\u001b[0m         \u001b[1;32massert\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhandles\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1869\u001b[0m         \u001b[1;32mfor\u001b[0m \u001b[0mkey\u001b[0m \u001b[1;32min\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;34m\"storage_options\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"encoding\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"memory_map\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"compression\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_open_handles\u001b[1;34m(self, src, kwds)\u001b[0m\n\u001b[0;32m   1360\u001b[0m         \u001b[0mLet\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mreaders\u001b[0m \u001b[0mopen\u001b[0m \u001b[0mIOHanldes\u001b[0m \u001b[0mafter\u001b[0m \u001b[0mthey\u001b[0m \u001b[0mare\u001b[0m \u001b[0mdone\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mtheir\u001b[0m \u001b[0mpotential\u001b[0m \u001b[0mraises\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1361\u001b[0m         \"\"\"\n\u001b[1;32m-> 1362\u001b[1;33m         self.handles = get_handle(\n\u001b[0m\u001b[0;32m   1363\u001b[0m             \u001b[0msrc\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1364\u001b[0m             \u001b[1;34m\"r\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\common.py\u001b[0m in \u001b[0;36mget_handle\u001b[1;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[0;32m    640\u001b[0m                 \u001b[0merrors\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"replace\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    641\u001b[0m             \u001b[1;31m# Encoding\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 642\u001b[1;33m             handle = open(\n\u001b[0m\u001b[0;32m    643\u001b[0m                 \u001b[0mhandle\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    644\u001b[0m                 \u001b[0mioargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmode\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'EURUSD.csv'"
     ]
    }
   ],
   "source": [
    "candle_df = to_candle.from_tick_to_candle(\"EURUSD.csv\", 15*60)\n",
    "candle_df.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "2b1a23fc",
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'candle_df' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-1-e93da5d7ca9c>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mcandle_df\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m: name 'candle_df' is not defined"
     ]
    }
   ],
   "source": [
    "candle_df.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1bf5fd6c",
   "metadata": {},
   "source": [
    "## Technical analysis library - ta.momentum.RSIIndicator\n",
    "**pip install ta**\n",
    "\n",
    "Using the *ta* library we are going to load the RSI information of the current dataframe using the *close column*."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "a6b946a2",
   "metadata": {},
   "outputs": [],
   "source": [
    "from ta.momentum import RSIIndicator\n",
    "RSIIndicator(candle_df[\"CLOSE\"], window=14, fillna=True)\n",
    "rsi_object = RSIIndicator(candle_df[\"CLOSE\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b1371837",
   "metadata": {},
   "source": [
    "Computing the RSI value.\n",
    "\n",
    "### RSI values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "96b14e45",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "142    54.210727\n",
       "143    45.893141\n",
       "144    47.085401\n",
       "145    45.993951\n",
       "146    47.943216\n",
       "Name: rsi, dtype: float64"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rsi = rsi_object.rsi()\n",
    "rsi.tail(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0920ec80",
   "metadata": {},
   "source": [
    "# RSI PLOT"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "98396333",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "rsi.plot()"
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "b3ba2566441a7c06988d0923437866b63cedc61552a5af99d1f4fb67d367b25f"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
